from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

class 年级(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    编号 = db.Column(db.Integer, unique=True, nullable=False)
    年级 = db.Column(db.String(50), nullable=False)

class 项目(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    编号 = db.Column(db.Integer, unique=True, nullable=False)
    收费项目 = db.Column(db.String(50), nullable=False)

class 账号(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    编号 = db.Column(db.Integer, unique=True, nullable=False)
    账号 = db.Column(db.String(50), nullable=False)

class 家长(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    编号 = db.Column(db.Integer, unique=True, nullable=False)
    家长姓名 = db.Column(db.String(50), nullable=False)
    手机号 = db.Column(db.String(20), nullable=False)

class 学生(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    编号 = db.Column(db.Integer, unique=True, nullable=False)
    姓名 = db.Column(db.String(50), nullable=False)
    性别 = db.Column(db.String(10), nullable=False)
    出生日期 = db.Column(db.Date, nullable=False)
    身份证号码 = db.Column(db.String(20), nullable=False)
    家庭住址 = db.Column(db.String(100), nullable=False)
    家长编号 = db.Column(db.Integer, db.ForeignKey('家长.编号'), nullable=False)
    家长 = db.relationship('家长', backref=db.backref('学生', lazy=True))

class 开班(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    编号 = db.Column(db.Integer, unique=True, nullable=False)
    年级 = db.Column(db.String(50), nullable=False)
    年度 = db.Column(db.String(50), nullable=False)
    学期 = db.Column(db.String(50), nullable=False)

class 注册(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    编号 = db.Column(db.Integer, unique=True, nullable=False)
    学生编号 = db.Column(db.Integer, db.ForeignKey('学生.编号'), nullable=False)
    班级编号 = db.Column(db.Integer, db.ForeignKey('开班.编号'), nullable=False)
    年度 = db.Column(db.String(50), nullable=False)
    学期 = db.Column(db.String(50), nullable=False)
    年级 = db.Column(db.String(50), nullable=False)
    姓名 = db.Column(db.String(50), nullable=False)
    性别 = db.Column(db.String(10), nullable=False)
    家长 = db.Column(db.String(50), nullable=False)
    学生 = db.relationship('学生', backref=db.backref('注册', lazy=True))
    开班 = db.relationship('开班', backref=db.backref('注册', lazy=True))

class 收费(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    编号 = db.Column(db.Integer, unique=True, nullable=False)
    日期 = db.Column(db.Date, nullable=False)
    注册编号 = db.Column(db.Integer, db.ForeignKey('注册.编号'), nullable=False)
    学生 = db.Column(db.String(50), nullable=False)
    班级 = db.Column(db.String(50), nullable=False)
    年度 = db.Column(db.String(50), nullable=False)
    学期 = db.Column(db.String(50), nullable=False)
    年级 = db.Column(db.String(50), nullable=False)
    摘要 = db.Column(db.String(100), nullable=False)
    收费项目 = db.Column(db.String(50), nullable=False)
    金额 = db.Column(db.Float, nullable=False)
    收款账号 = db.Column(db.String(50), nullable=False)
    列1 = db.Column(db.String(50), nullable=True)
    列2 = db.Column(db.String(50), nullable=True)

class 横向汇总(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    注册编号 = db.Column(db.Integer, db.ForeignKey('注册.编号'), nullable=False)
    学生 = db.Column(db.String(50), nullable=False)
    班级 = db.Column(db.String(50), nullable=False)
    延时班 = db.Column(db.String(50), nullable=False)
    定金 = db.Column(db.Float, nullable=False)
    延时实践活动及材料费 = db.Column(db.Float, nullable=False)
    伙食费 = db.Column(db.Float, nullable=False)
    视频费 = db.Column(db.Float, nullable=False)
    书费 = db.Column(db.Float, nullable=False)
    园服 = db.Column(db.Float, nullable=False)
    床上用品 = db.Column(db.Float, nullable=False)
    代收费 = db.Column(db.Float, nullable=False)
    保教费 = db.Column(db.Float, nullable=False)
    合计 = db.Column(db.Float, nullable=False)